/*
 * uCharts®
 * 高性能跨平台图表库，支持H5、APP、小程序（微信/支付宝/百度/头条/QQ/360）、Vue、Taro等支持canvas的框架平台
 * Copyright (c) 2021 QIUN®秋云 https://www.ucharts.cn All rights reserved.
 * Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
 * 复制使用请保留本段注释，感谢支持开源！
 * 
 * uCharts®官方网站
 * https://www.uCharts.cn
 * 
 * 开源地址:
 * https://gitee.com/uCharts/uCharts
 * 
 * uni-app插件市场地址：
 * http://ext.dcloud.net.cn/plugin?id=271
 * 
 */

// 主题颜色配置：如每个图表类型需要不同主题，请在对应图表类型上更改color属性
const color = ['#1890FF', '#91CB74', '#FAC858', '#EE6666', '#73C0DE', '#3CA272', '#FC8452', '#9A60B4', '#ea7ccc'];

//事件转换函数，主要用作格式化x轴为时间轴，根据需求自行修改
const formatDateTime = (timeStamp, returnType) => {
    var date = new Date();
    date.setTime(timeStamp * 1000);
    var y = date.getFullYear();
    var m = date.getMonth() + 1;
    m = m < 10 ? ('0' + m) : m;
    var d = date.getDate();
    d = d < 10 ? ('0' + d) : d;
    var h = date.getHours();
    h = h < 10 ? ('0' + h) : h;
    var minute = date.getMinutes();
    var second = date.getSeconds();
    minute = minute < 10 ? ('0' + minute) : minute;
    second = second < 10 ? ('0' + second) : second;
    if (returnType == 'full') { return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second; }
    if (returnType == 'y-m-d') { return y + '-' + m + '-' + d; }
    if (returnType == 'h:m') { return h + ':' + minute; }
    if (returnType == 'h:m:s') { return h + ':' + minute + ':' + second; }
    return [y, m, d, h, minute, second];
}

const cfu = {
    //demotype为自定义图表类型，一般不需要自定义图表类型，只需要改根节点上对应的类型即可
    "type": ["pie", "ring", "rose", "word", "funnel", "map", "arcbar", "line", "column", "mount", "bar", "area",
        "radar", "gauge", "candle", "mix", "tline", "tarea", "scatter", "bubble", "demotype"
    ],
    "range": ["饼状图", "圆环图", "玫瑰图", "词云图", "漏斗图", "地图", "圆弧进度条", "折线图", "柱状图", "山峰图", "条状图", "区域图", "雷达图", "仪表盘",
        "K线图", "混合图", "时间轴折线", "时间轴区域", "散点图", "气泡图", "自定义类型"
    ],
    //增加自定义图表类型，如果需要categories，请在这里加入您的图表类型，例如最后的"demotype"
    //自定义类型时需要注意"tline","tarea","scatter","bubble"等时间轴（矢量x轴）类图表，没有categories，不需要加入categories
    "categories": ["line", "column", "mount", "bar", "area", "radar", "gauge", "candle", "mix", "demotype"],
    //instance为实例变量承载属性，不要删除
    "instance": {},
    //option为opts及eopts承载属性，不要删除
    "option": {},
    //下面是自定义format配置，因除H5端外的其他端无法通过props传递函数，只能通过此属性对应下标的方式来替换
    "formatter": {
        "yAxisDemo1": function(val, index, opts) { return val + '元' },
        "yAxisDemo2": function(val, index, opts) { return val.toFixed(2) },
        "xAxisDemo1": function(val, index, opts) { return val + '年'; },
        "xAxisDemo2": function(val, index, opts) { return formatDateTime(val, 'h:m') },
        "seriesDemo1": function(val, index, series, opts) { return val + '元' },
        "tooltipDemo1": function(item, category, index, opts) {
            if (index == 0) {
                return '随便用' + item.data + '年'
            } else {
                return '其他我没改' + item.data + '天'
            }
        },
        "tooltipFormat1": function(item, category, index, series, opts) {
            // console.log(item, category, index, series, opts)
            return `${category} ${item.name}  ${item.data} 千克/辆`
        },
        "tooltipFormat2": function(item, category, index, series, opts) {
            // console.log(item, category, index, series, opts)
            return `${category} ${item.name}  ${item.data} 千克`
        },
		"tooltipFormat3": function(item, category, index, series, opts) {
		    // console.log(item, category, index, series, opts)
		    return `${series?.series?.[item.name]?.labelText?.[index]??''}  ${item.data}%`
		},
        "pieDemo": function(val, index, series, opts) {
            if (index !== undefined) {
                return series[index].name + '：' + series[index].data + '元'
            }
        },
    },
    //这里演示了自定义您的图表类型的option，可以随意命名，之后在组件上 type="demotype" 后，组件会调用这个花括号里的option，如果组件上还存在opts参数，会将demotype与opts中option合并后渲染图表。
    "demotype": {
        //我这里把曲线图当做了自定义图表类型，您可以根据需要随意指定类型或配置
        "type": "line",
        "color": color,
        "padding": [15, 10, 0, 15],
        "xAxis": {
            "disableGrid": true,
        },
        "yAxis": {
            "gridType": "dash",
            "dashLength": 2,
        },
        "legend": {},
        "extra": {
            "line": {
                "type": "curve",
                "width": 2
            },
        }
    },
    //下面是自定义配置，请添加项目所需的通用配置
    "pie": {
        "type": "pie",
        "color": color,
        "padding": [5, 5, 5, 5],
        "extra": {
            "pie": {
                "activeOpacity": 0.5,
                "activeRadius": 10,
                "offsetAngle": 0,
                "labelWidth": 15,
                "border": true,
                "borderWidth": 3,
                "borderColor": "#FFFFFF"
            },
        }
    },
    "ring": {
        "type": "ring",
        "color": color,
        "padding": [5, 5, 5, 5],
        "rotate": false,
        "dataLabel": true,
        "legend": {
            "show": true,
            "position": "right",
            "lineHeight": 25,
        },
        "title": {
            "name": "收益率",
            "fontSize": 15,
            "color": "#666666"
        },
        "subtitle": {
            "name": "70%",
            "fontSize": 25,
            "color": "#7cb5ec"
        },
        "extra": {
            "ring": {
                "ringWidth": 30,
                "activeOpacity": 0.5,
                "activeRadius": 10,
                "offsetAngle": 0,
                "labelWidth": 15,
                "border": true,
                "borderWidth": 3,
                "borderColor": "#FFFFFF"
            },
        },
    },
    "rose": {
        "type": "rose",
        "color": color,
        "padding": [5, 5, 5, 5],
        "legend": {
            "show": true,
            "position": "left",
            "lineHeight": 25,
        },
        "extra": {
            "rose": {
                "type": "area",
                "minRadius": 50,
                "activeOpacity": 0.5,
                "activeRadius": 10,
                "offsetAngle": 0,
                "labelWidth": 15,
                "border": false,
                "borderWidth": 2,
                "borderColor": "#FFFFFF"
            },
        }
    },
    "word": {
        "type": "word",
        "color": color,
        "extra": {
            "word": {
                "type": "normal",
                "autoColors": false
            }
        }
    },
    "funnel": {
        "type": "funnel",
        "color": color,
        "padding": [15, 15, 0, 15],
        "extra": {
            "funnel": {
                "activeOpacity": 0.3,
                "activeWidth": 10,
                "border": true,
                "borderWidth": 2,
                "borderColor": "#FFFFFF",
                "fillOpacity": 1,
                "labelAlign": "right"
            },
        }
    },
    "map": {
        "type": "map",
        "color": color,
        "padding": [0, 0, 0, 0],
        "dataLabel": true,
        "extra": {
            "map": {
                "border": true,
                "borderWidth": 1,
                "borderColor": "#666666",
                "fillOpacity": 0.6,
                "activeBorderColor": "#F04864",
                "activeFillColor": "#FACC14",
                "activeFillOpacity": 1
            },
        }
    },
    "arcbar": {
        "type": "arcbar",
        "color": color,
        "title": {
            "name": "百分比",
            "fontSize": 25,
            "color": "#00FF00"
        },
        "subtitle": {
            "name": "默认标题",
            "fontSize": 15,
            "color": "#666666"
        },
        "extra": {
            "arcbar": {
                "type": "default",
                "width": 12,
                "backgroundColor": "#E9E9E9",
                "startAngle": 0.75,
                "endAngle": 0.25,
                "gap": 2
            }
        }
    },
    "line": {
        "type": "line",
        "color": color,
        "padding": [15, 10, 0, 15],
        "xAxis": {
            "disableGrid": true,
        },
        "yAxis": {
            "gridType": "dash",
            "dashLength": 2,
        },
        "legend": {},
        "extra": {
            "line": {
                "type": "straight",
                "width": 2,
                "activeType": "hollow"
            },
        }
    },
    "tline": {
        "type": "line",
        "color": color,
        "padding": [15, 10, 0, 15],
        "xAxis": {
            "disableGrid": false,
            "boundaryGap": "justify",
        },
        "yAxis": {
            "gridType": "dash",
            "dashLength": 2,
            "data": [{
                "min": 0,
                "max": 80
            }]
        },
        "legend": {},
        "extra": {
            "line": {
                "type": "curve",
                "width": 2,
                "activeType": "hollow"
            },
        }
    },
    "tarea": {
        "type": "area",
        "color": color,
        "padding": [15, 10, 0, 15],
        "xAxis": {
            "disableGrid": true,
            "boundaryGap": "justify",
        },
        "yAxis": {
            "gridType": "dash",
            "dashLength": 2,
            "data": [{
                "min": 0,
                "max": 80
            }]
        },
        "legend": {},
        "extra": {
            "area": {
                "type": "curve",
                "opacity": 0.2,
                "addLine": true,
                "width": 2,
                "gradient": true,
                "activeType": "hollow"
            },
        }
    },
    "column": {
        "type": "column",
        "color": color,
        "padding": [15, 15, 0, 5],
        "xAxis": {
            "disableGrid": true,
        },
        "yAxis": {
            "data": [{ "min": 0 }]
        },
        "legend": {},
        "extra": {
            "column": {
                "type": "group",
                "width": 30,
                "activeBgColor": "#000000",
                "activeBgOpacity": 0.08
            },
        }
    },
    "mount": {
        "type": "mount",
        "color": color,
        "padding": [15, 15, 0, 5],
        "xAxis": {
            "disableGrid": true,
        },
        "yAxis": {
            "data": [{ "min": 0 }]
        },
        "legend": {},
        "extra": {
            "mount": {
                "type": "mount",
                "widthRatio": 1.5,
            },
        }
    },
    "bar": {
        "type": "bar",
        "color": color,
        "padding": [15, 30, 0, 5],
        "xAxis": {
            "boundaryGap": "justify",
            "disableGrid": false,
            "min": 0,
            "axisLine": false
        },
        "yAxis": {},
        "legend": {},
        "extra": {
            "bar": {
                "type": "group",
                "width": 30,
                "meterBorde": 1,
                "meterFillColor": "#FFFFFF",
                "activeBgColor": "#000000",
                "activeBgOpacity": 0.08
            },
        }
    },
    "area": {
        "type": "area",
        "color": color,
        "padding": [15, 15, 0, 15],
        "xAxis": {
            "disableGrid": true,
        },
        "yAxis": {
            "gridType": "dash",
            "dashLength": 2,
        },
        "legend": {},
        "extra": {
            "area": {
                "type": "straight",
                "opacity": 0.2,
                "addLine": true,
                "width": 2,
                "gradient": false,
                "activeType": "hollow"
            },
        }
    },
    "radar": {
        "type": "radar",
        "color": color,
        "padding": [5, 5, 5, 5],
        "dataLabel": false,
        "legend": {
            "show": true,
            "position": "right",
            "lineHeight": 25,
        },
        "extra": {
            "radar": {
                "gridType": "radar",
                "gridColor": "#CCCCCC",
                "gridCount": 3,
                "opacity": 0.2,
                "max": 200,
                "labelShow": true
            },
        }
    },
    "gauge": {
        "type": "gauge",
        "color": color,
        "title": {
            "name": "66Km/H",
            "fontSize": 25,
            "color": "#2fc25b",
            "offsetY": 50
        },
        "subtitle": {
            "name": "实时速度",
            "fontSize": 15,
            "color": "#1890ff",
            "offsetY": -50
        },
        "extra": {
            "gauge": {
                "type": "default",
                "width": 30,
                "labelColor": "#666666",
                "startAngle": 0.75,
                "endAngle": 0.25,
                "startNumber": 0,
                "endNumber": 100,
                "labelFormat": "",
                "splitLine": {
                    "fixRadius": 0,
                    "splitNumber": 10,
                    "width": 30,
                    "color": "#FFFFFF",
                    "childNumber": 5,
                    "childWidth": 12
                },
                "pointer": {
                    "width": 24,
                    "color": "auto"
                }
            }
        }
    },
    "candle": {
        "type": "candle",
        "color": color,
        "padding": [15, 15, 0, 15],
        "enableScroll": true,
        "enableMarkLine": true,
        "dataLabel": false,
        "xAxis": {
            "labelCount": 4,
            "itemCount": 40,
            "disableGrid": true,
            "gridColor": "#CCCCCC",
            "gridType": "solid",
            "dashLength": 4,
            "scrollShow": true,
            "scrollAlign": "left",
            "scrollColor": "#A6A6A6",
            "scrollBackgroundColor": "#EFEBEF"
        },
        "yAxis": {},
        "legend": {},
        "extra": {
            "candle": {
                "color": {
                    "upLine": "#f04864",
                    "upFill": "#f04864",
                    "downLine": "#2fc25b",
                    "downFill": "#2fc25b"
                },
                "average": {
                    "show": true,
                    "name": ["MA5", "MA10", "MA30"],
                    "day": [5, 10, 20],
                    "color": ["#1890ff", "#2fc25b", "#facc14"]
                }
            },
            "markLine": {
                "type": "dash",
                "dashLength": 5,
                "data": [{
                        "value": 2150,
                        "lineColor": "#f04864",
                        "showLabel": true
                    },
                    {
                        "value": 2350,
                        "lineColor": "#f04864",
                        "showLabel": true
                    }
                ]
            }
        }
    },
    "mix": {
        "type": "mix",
        "color": color,
        "padding": [15, 15, 0, 15],
        "xAxis": {
            "disableGrid": true,
        },
        "yAxis": {
            "disabled": false,
            "disableGrid": false,
            "splitNumber": 5,
            "gridType": "dash",
            "dashLength": 4,
            "gridColor": "#CCCCCC",
            "padding": 10,
            "showTitle": true,
            "data": []
        },
        "legend": {},
        "extra": {
            "mix": {
                "column": {
                    "width": 20
                }
            },
        }
    },
    "scatter": {
        "type": "scatter",
        "color": color,
        "padding": [15, 15, 0, 15],
        "dataLabel": false,
        "xAxis": {
            "disableGrid": false,
            "gridType": "dash",
            "splitNumber": 5,
            "boundaryGap": "justify",
            "min": 0
        },
        "yAxis": {
            "disableGrid": false,
            "gridType": "dash",
        },
        "legend": {},
        "extra": {
            "scatter": {},
        }
    },
    "bubble": {
        "type": "bubble",
        "color": color,
        "padding": [15, 15, 0, 15],
        "xAxis": {
            "disableGrid": false,
            "gridType": "dash",
            "splitNumber": 5,
            "boundaryGap": "justify",
            "min": 0,
            "max": 250
        },
        "yAxis": {
            "disableGrid": false,
            "gridType": "dash",
            "data": [{
                "min": 0,
                "max": 150
            }]
        },
        "legend": {},
        "extra": {
            "bubble": {
                "border": 2,
                "opacity": 0.5,
            },
        }
    }
}

export default cfu;